Add deterministic audio fixture smoke test - #16
Merged
Conversation
Owner
Author
|
@claude resolve conflicts |
Generates a composite 8s stereo WAV (A-minor triad + 120 BPM clicks + fade) and runs the full analyze.py pipeline, asserting pinned numeric values to catch silent value regressions across BPM, LUFS, spectral balance, key detection, and detail objects. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
slittycode
force-pushed
the
claude/add-audio-fixture-test-3ZmTA
branch
from
May 8, 2026 08:43
a4d6582 to
4ab1c6d
Compare
Resolve conflict markers left by ec4ea3b in types.ts (barrel re-export), analysisRunsClient.ts (remove duplicate fetchJson, use httpClient import), and spectralArtifactsClient.ts (use fetchJson from httpClient). Also add missing `path` field to parseArtifact to match AnalysisRunArtifact interface. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
Resolve conflict keeping the modular imports (server_upload, server_phase1, server_phase2) which match the refactored architecture on this branch. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
…rver.py The conflict resolution dropped `import upload_limits` which is still used directly in several places. Also fix one `uuid.uuid4()` call to use the already-imported `uuid4` function. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
The parseArtifact function now requires a path field on AnalysisRunArtifact. Update all 19 stub sourceAudio objects in smoke tests to include it. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
Not all API responses include path yet; make the type and parser tolerant of missing path to avoid runtime crashes in smoke tests against older stub fixtures. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
The HEAD-side versions of analysisRunsClient.ts and spectralArtifactsClient.ts (using httpClient.fetchJson) were causing smoke test failures. Revert to the c3e6e0b versions which used buildConfiguredRequestInit and had passing CI on PR #15. Keep barrel types.ts since the branch has code that needs styleProfile from types/interpretation.ts. https://claude.ai/code/session_01STZTd89GqeF5qd46r5wJUz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
apps/backend/tests/test_audio_fixture.py— an end-to-end smoke test that generates a deterministic composite WAV fixture (A-minor triad + 120 BPM clicks + gentle fade), runs the fullanalyze.pypipeline, and asserts 27 pinned values across BPM, key, LUFS, spectral balance, stereo, detectors, and schema completeness--fast), exercising all Tier 3 detectorsTest plan
./venv/bin/python -m unittest tests.test_audio_fixture -v./venv/bin/python -m unittest discover -s tests